#ifndef DRAW_H
#define DRAW_H

#include <arduino.h>
#include <string.h>
#include "Cube.h"

class Draw {
  
  public:
  
    static void drawPlaneX(int x, Cube &cube){
      if(!cube.isInCube(x))
        return;
      for(int layer = 0; layer < cube.SIDESIZE; layer++){
        for(int y = 0; y < cube.SIDESIZE; y++)        
          cube.setPixel(x, y, layer, true);
        cube.update(layer);
      }
    }
    
    static void clearPlaneX(int x, Cube &cube){
      //if(!cube.isInCube(x))
      //  return;
      for(int layer = 0; layer < cube.SIDESIZE; layer++){
        for(int y = 0; y < cube.SIDESIZE; y++)      
          cube.setPixel(x, y, layer, false);
        cube.update(layer);
      }
    }
    
    static void drawPlaneY(int y, Cube &cube){
      //if(!cube.isInCube(y))
      //  return;
      for(int layer = 0; layer < cube.SIDESIZE; layer++){
        for(int x = 0; x < cube.SIDESIZE; x++)      
          cube.setPixel(x, y, layer, true);
        cube.update(layer);
      }
    }
  
    static void clearPlaneY(int y, Cube &cube){
      //if(!cube.isInCube(y))
      //  return;
      for(int layer = 0; layer < cube.SIDESIZE; layer++){
        for(int x = 0; x < cube.SIDESIZE; x++)      
          cube.setPixel(x, y, layer, false);
        cube.update(layer);
      }
    }
    
    static void drawPlaneZ(int z, Cube &cube){
      //if(!cube.isInCube(z))
      //  return;
      for(int x = 0; x < cube.SIDESIZE; x++){
        for(int y = 0; y < cube.SIDESIZE; y++)
          cube.setPixel(x, y, z, true);
      }
      cube.update(z);
    }
    
    static void clearPlaneZ(int z, Cube &cube){
      //if(!cube.isInCube(z))
      //  return;
      for(int x = 0; x < cube.SIDESIZE; x++){
        for(int y = 0; y < cube.SIDESIZE; y++)
          cube.setPixel(x, y, z, false);
      }
      cube.update(z);
    }  
  
};

#endif

